Bank Account - ARS
Introduction
This section covers ARS (Argentine Peso) on-ramp specifics. ARS deposits flow through Mural Pay's ARS Bank Transfer Payin Intent — a per-payment, amount + source-account-locked transfer to a destination CVU returned at ticket creation time.
Unlike COP (which exposes a Bre-B Info utility for key validation), ARS does not have a separate look-up endpoint. All on-ramp parameters — destination CVU, bank name, expiration window, and amount lock — are returned in the ticket creation response, so there is no separate "validate" step to perform before creating the ticket.
How an ARS deposit works
- Quote a fixed-rate ARS → token conversion (e.g.
inputCurrency=ARS&inputPaymentMethod=BANK-TRANSFER&outputCurrency=USDC). - Create a ticket and pass
ticketArsInput.senderAccountNumber— the CVU or CBU the payer will send from (22 digits). The pay-in is locked to that source account; transfers from any other account are rejected by Mural. - Receive deposit instructions in the ticket response:
cvu(the destination CVU),bankName(the bank holding the CVU), andexpiration. - Show those instructions to the end-user in your UI. The user opens their banking app and sends the exact ARS amount to the destination CVU from the registered source account.
- Webhook fires
payin_status_changed = COMPLETEDwhen Mural sees the deposit; the ticket transitions toPAIDand the user is credited net of fees.
Amount + source-account locked. Mural rejects any inbound transfer that doesn't match the exact amount AND doesn't originate from the senderAccountNumber you registered. Mismatched payments are not auto-refunded — they are bounced back by the bank.
Ticket creation request body
For ARS on-ramp tickets, the payload below extends the standard ticket request:
curl -X POST "https://api.sandbox.avenia.io:10952/v2/account/tickets/" \
-H "Authorization: Bearer eyJhdXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" \
-H "Content-Type: application/json" \
-d '{
"quoteToken": "eyJhdXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
"ticketArsInput": {
"senderAccountNumber": "0000003100010000000001"
},
"ticketBlockchainOutput": {
"walletAddress": "0xabcdefabcdefabcdefabcdefabcdefabcdefabcd"
}
}'
| Field | Type | Required | Validation | Description |
|---|---|---|---|---|
ticketArsInput.senderAccountNumber | string | Yes | Exactly 22 digits | The payer's source CVU or CBU. Mural source-locks the pay-in to this account; transfers from any other account are rejected. |
Ticket creation response (ARS-specific fields)
In addition to the standard id field, ARS tickets return the destination CVU instructions:
{
"id": "9355e9b9-9637-4dba-8ce5-09c6ce3b92c2",
"cvu": "0000003100010000000001",
"bankName": "Banco de la Nación Argentina",
"expiration": "2026-06-22T16:30:10.888356802Z"
}
| Field | Type | Description |
|---|---|---|
id | string (UUID) | Ticket identifier. |
cvu | string | The destination CVU the payer must transfer ARS to. |
bankName | string | Name of the Argentine bank holding the destination CVU. |
expiration | timestamp | ISO 8601. After this, the pay-in window closes; the user must create a new ticket. Default window is 30 minutes. |
Errors
| Status | Message | When |
|---|---|---|
400 | ticketArsInput.senderAccountNumber is invalid | Field is missing, not 22 digits, or contains non-digit characters. |
400 | ARS KYC must be approved before creating ARS tickets | User has not completed ARS KYC (arsUnlocked = false). See KYC - ARS. |
Conclusion
You now have the necessary understanding to create ARS on-ramp tickets, display the destination CVU instructions to your end-user, and consume the resulting deposit through the Mural ARS Bank Transfer Payin Intent flow.